package com;

import io.airlift.airline.Option;

import static com.google.common.base.Objects.firstNonNull;

/**
 * @author 张述江
 * @date 2023-08-28
 */
public class VersionOption {
    // 可选的option，即command中可以不使用；默认值为false，即默认不展示cli的version信息
    @Option(name = {"--version", "-v"}, description = "打印版本号")
    public Boolean version = false;

    // 返回version，以决定是否运行cli；一般展示version和帮助信息，不需要开启cli
    public boolean showVersionIfRequested() {
        if (version) {
            // AdhocQuery就是cli的入口类，获取入口类的 implementation version，可能为null
            String clientVersion = Main.class.getPackage().getImplementationVersion();
            System.out.println("版本号：" + firstNonNull(clientVersion, "未知"));
        }
        return version;
    }
}
